Page({
  data:{
    // 笑话列表
    list:[] as string[],
    isRefresh:false
  },
  testRequest(){
     wx.request({
    method:'GET',
    url: 'https://api-vue-base.itheima.net/api/joke',
    success:(res)=>{
    console.log(res.data)
    },
    // 失败回调
    fail(){},
    // 完成回调
    complete(){}
  })

  },
  // 获取笑话列表
  getJokeList(){
    // 返回promise对象
  return new Promise((resolve: (value:string[]) => void,reject)=>{
    wx.showLoading({
      title: '加载中',
    })
    wx.request<any>({
      url: 'https://api-vue-base.itheima.net/api/joke/list',//请求地址
      method:'GET',//请求方法
      data:{num:10}, // 请求参数
      success:(res)=>{// 请求成功
         // 保存数据，更新UI
        // this.setData({
        //   list:res.data.data
        // })
        resolve(res.data.data)// 标记为  Promise 成功
      },
      // 失败回调
      fail(){
        reject() // 标记为 Promise 失败
      },
      // 完成回调
      complete(){
        wx.hideLoading()
      }
    })
  })
  },
 // 小程序常用生命周期函数
  onLoad(){
  // console.log('页面加载',onLoad)
  this.getJokeList().then((res)=>{
    this.setData({
      list:res
    })
  })
  },
  onUnload(){
    console.log('页面卸载,onUnLoad')
    },
  onShow(){
      console.log('页面显示,onShow')
      },
  onHide(){
        console.log('页面隐藏,onHide')
        },

          // 下拉刷新，重新加载数据
  async reloadData(){
       // 开启动画
    this.setData({isRefresh:true})
    //请求数据
    // await this.getJokeList()
     // 获取 Promise 成功时的数据
     const res = await this.getJokeList()
     // 更新UI
     this.setData({ list: res })
    // 关闭动画
    this.setData({isRefresh:false})
    
  },
  //滚动触底，获取更多数据
  async getMoreData(){
      //  获取 Promise 成功时的数据
   const res=await this.getJokeList()
     // 更新数据
   this.data.list.push(...res)
    // 更新UI
   this.setData({
     list:this.data.list
   })
  } 
})
